Mobile devices are increasingly used for executing business processes. Such business processes utilize and manipulate business data stored on the mobile devices. In one example, a delivery person may deliver a product to customers along an established route. The delivery person may use a mobile device to determine a product quantity and delivery schedule for each customer on the route, to enter new-orders and/or changes to existing orders, and to indicate successful delivery of an order. The mobile device must therefore receive business data from a back-end system that is specific to the route with which the mobile device is associated (e.g., product quantities, delivery schedules), as well as transmit business data (e.g., new and/or changed order information) to the back-end system for validation and storage therein.
FIG. 1 illustrates an internal software architecture of a mobile device which employs Java Data Object (JDO) persistency. As shown, mobile device 10 includes application 20 and database element 30. Application 20 provides the JDO Application Programming Interface (API) to business processes (not shown) executed by mobile device 10. Generally, the JDO API allows the business processes to store and to retrieve JDOs to and from database element 30 using a standard set of interfaces.
To store an object, a business process first invokes an appropriate interface of the JDO API. The object is cached and its data is serialized to an intermediate form using a database driver-specific Structured Query Language (SQL) serializer. The serialized data is passed to a database driver for transmission to database element 30. Database element 30 parses the received data and provides the parsed data to an access methods module. The module deserializes the data in its intermediate form and then serializes the data for storage in a database.
Conversely, retrieval of the data includes invoking an interface of the JDO API to request the corresponding object, passing the request through the cache, SQL serializer, the database driver, the parser, the access methods module, and to the database. The data is retrieved from the database, deserialized and serialized into the intermediate form using the access methods module. The serialized data is passed to a result builder for building an appropriate response to the request, through the database driver, a result parser, the cache and back to the business process via the JDO API. Such storage and retrieval of business data is unsuitably inefficient for many usage scenarios, including when resources are limited and/or when high performance is required.
Conventional systems also do not adequately address local storage and synchronization of business data between a mobile device and a back-end system. Synchronization issues arise because the nature of a mobile device to become occasionally-disconnected from its associated back-end system. The frequency and unpredictability of such disconnections create difficulties in keeping mobile devices up-to-date with respect to their associated data, and in maintaining an accurate record of the internal state of the mobile devices.
Improvements to the efficiency of mobile object data storage and/or synchronization are therefore desired.